package com.zgc.util;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

// Spring控制反转注解：service controller 有着基本作用，将当前类，交给Spring框架管理；
@Component
public class MailSenderUtil {

    // Spring依赖注入注解：当 Spring生成对应的类对象的时候，自动将其依赖的属性 进行赋值（注入）；
    @Autowired
    private JavaMailSender mailSender; //Java邮件发送对象-工具

    // Spring基本注解：为变量进行指定的赋值
    // ${} Spring框架的一个表达式：在SpringBoot 可以根据配置文件的 键 来读取 值的内容；
    @Value("${spring.mail.username}")
    private String from;

    public String sendMail(String toUser,String title,String body) throws MessagingException {

        //------------------------
        // 调用工具，发送以上信息给指定的邮箱。
        /**
         *  一封邮件也是一个对象：
         *      1. 通过工具快速创建了一个邮件对象
         *      2. 包装类： 辅助我们管理一封邮件内容
         *      3. 发送邮件 使用发送工具，发送邮件
         */
        // 1.
        MimeMessage mail = mailSender.createMimeMessage();
        // 2.
        MimeMessageHelper helper = new MimeMessageHelper(mail, true,"UTF-8");
        helper.setTo(toUser);
        helper.setSubject(title);
        helper.setText(body);
        helper.setFrom(from);
        // 3.
        mailSender.send(mail);
        //------------------------
        return "成功";
    }
}
